Common Internet access methods include the use of cable modems or Digital Subscriber Line (DSL). These access methods have a limited amount of upstream bandwidth to accommodate the flow of data to the Internet. However, applications such as Voice over IP (VoIP) will malfunction unless a certain amount of upstream bandwidth is reserved or guaranteed. For example, effective communication through VoIP generally requires a delay of no greater than 100 to 150 milliseconds. The limited upstream bandwidth provided by conventional Internet access methods such as DSL or cable modems is a factor in this delay. If too little upstream data rate is available, the voice data rate is slowed such that the acceptable delay limit will be violated. For example, VoIP implemented with a G.711 codec may require up to 100 kbps in upstream data rate. But note that a VoIP caller may also be emailing others while speaking. In addition, other users of a network serviced by the Internet access method may also be sending data to the Internet. Thus, the network may implement some form of Quality of Service (QoS) to appropriately prioritize data packets. To implement QoS intelligently, a measure of the upstream bandwidth is usually necessary. For example, if the upstream bandwidth is ample enough to accommodate all the upstream data traffic, there would be no need to restrict the transmission of lower-priority data packets. Conversely, if the upstream bandwidth is particularly limited, the transmission of lower-priority data packets may need to be restricted. For example, it is common for a configuration page for a home router to simply ask the user what is the upstream bandwidth. Because cable or DSL modems are generally transparent to the router, a typical user has no intelligent way of assessing the upstream bandwidth. Some network devices such as routers calculate the upstream bandwidth by sending data to a server on the Internet. The upstream data rate (and hence bandwidth) may then be calculated by measuring the time necessary to upload the data to the server. But such a server must be maintained for this purpose and the measurement time taken is the entire transmission time to the server, not just the upstream rate of the Internet access method.
Accordingly, there is a need in the art for improved upstream bandwidth estimation techniques.
Overview
In one embodiment, a device is provided that includes: a transceiver operable to transmit packets to and receive packets from a modem; and a logic engine configured to transmit first packets at a rate through an upstream path for a modem to an Internet node such that no throttling is triggered in the modem, the logic engine being further configured to transmit second packets through the upstream path for the modem to the Internet node at a rate sufficient to trigger throttling in the modem if the modem implements throttling, the logic engine being further configured to compare an average transmission time for first packets to an average transmission time for the second packets to determine whether the modem implements throttling.
In an another embodiment, a device is provided that includes: a transceiver operable to transmit packets to and receive packets from a modem; and means for determining an upstream data rate for the modem, the means being configured to: transmit a first series of pings to a node on the Internet through an upstream data path for the modem; transmit a second series of pings to the node through the upstream data path for the modem at a rate sufficient to induce throttling should the modem implement throttling; compare an average transmission time for the first series of pings to an average transmission time for the second series of pings to determine whether the modem implements throttling; if the modem is determined to implement throttling, determine the upstream data rate for the modem using a total packet size and a total transmission time for the second series of pings; and if the modem is determined to not implement throttling, determine the upstream data rate for the modem using a third series of pings.
In an another embodiment, a method is provided that includes: transmitting a first series of packets to a node on the Internet through an upstream data path for a modem at a rate sufficient so as to not induce throttling should the modem implement throttling; transmitting a second series of packets to the node through the upstream data path for the modem at a rate sufficient to induce throttling should the modem implement throttling; comparing an average transmission time for the first series of packets to an average transmission time for the second series of packets to determine whether the modem implements throttling; if the modem is determined to implement throttling, determining an upstream data rate for the modem using a total packet size and a total transmission time for the second series of packets; and if the modem is determined to not implement throttling, determining an upstream data rate for the modem using a third series of packets.
Embodiments of the present invention and their advantages are best understood by referring to the detailed description that follows. It should be appreciated that like reference numerals are used to identify like elements illustrated in the figures.